home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / Database / Evaluator / ScrollViewExtras.m < prev    next >
Text File  |  1993-07-21  |  1KB  |  74 lines

  1. /* ScrollViewExtras.m:
  2.  * You may freely copy, distribute, and reuse the code in this example.
  3.  * NeXT disclaims any warranty of any kind, expressed or  implied, as to its
  4.  * fitness for any particular use.
  5.  *
  6.  * A generic scrollview driver object to display/print text 
  7.  * Written by Jack Greenfield
  8.  *
  9.  */
  10.  
  11. #import    <objc/objc-runtime.h>
  12. #import "ScrollViewExtras.h"
  13.  
  14. @implementation ScrollView(ScrollViewExtras)
  15.  
  16. - sprintf:(const char *)format, ...
  17. {
  18.     int length;
  19.     static char buffer[65536];
  20.     va_list arguments;
  21.  
  22.     if ([window isVisible])
  23.     {
  24.     va_start(arguments, format);
  25.     vsprintf(buffer, format, arguments);
  26.     va_end(arguments);
  27.     
  28.     length = [[self docView] textLength];
  29.     [[self docView] setSel:length :length];
  30.     [[self docView] replaceSel:buffer];
  31.     [[self docView] scrollSelToVisible];
  32.     }
  33.  
  34.     return self;
  35. }
  36.  
  37. - clear:sender
  38. {
  39.     int length;
  40.  
  41.     if ([window isVisible])
  42.     {
  43.     length = [[self docView] textLength];
  44.     [[self docView] setSel:0 :length];
  45.     [[self docView] replaceSel:""];
  46.     [[self docView] scrollSelToVisible];
  47.     }
  48.  
  49.     return self;
  50. }
  51.  
  52. - print:sender
  53. {
  54.     if ([window isVisible])
  55.     [[self docView] printPSCode:sender];
  56.  
  57.     return self;
  58. }
  59.  
  60. - printFrom:sender
  61. {
  62.     return [self sprintf:"%s\n", [sender stringValue]];
  63. }
  64.  
  65. /* Window Delegate method -- constrain window resizing */
  66.  
  67. - windowWillResize:sender toSize:(NXSize *)frameSize
  68. {
  69.     if ( frameSize->height < 230 ) frameSize->height= 230;
  70.     return self;
  71. }
  72.  
  73. @end
  74.